//
//  Date+Extension.swift
//  MicroBlog
//
//  Created by 贾晓磊 on 16/10/5.
//  Copyright © 2016年 贾晓磊. All rights reserved.
//

import Foundation

extension Date {
    //  在swift 3.0 类方法使用static关键字, 在swift 2.0 使用class
   static func sinaTime(creatAt: String) -> Date {
        //代码执行到此，表示时间字符串不为nil
        let dt = DateFormatter()
        //指定格式化方式
        dt.dateFormat = "EEE MMM dd HH:mm:ss z yyyy"
        //指定本地化信息
        dt.locale = Locale(identifier: "en_US")
        
        //把字符串转成时间对象
        let creatAtDate = dt.date(from: creatAt)!

        return creatAtDate
    }
    
    var sinaDataString: String {
        //代码执行到此，表示时间字符串不为nil
        let dt = DateFormatter()
        //指定本地化信息
        dt.locale = Locale(identifier: "en_US")
        
        //判断是否是今年
        if isThisYear(creatAt: self) {
            
            //日历对象
            let currentCalendar = Calendar.current
            
            if currentCalendar.isDateInToday(self) {
                //是今天
                let timeinterVal: TimeInterval = abs(self.timeIntervalSinceNow)
                if timeinterVal < 60 {
                    return "刚刚"
                } else if timeinterVal < 3600 {
                    let result = timeinterVal / 60
                    return "\(Int(result))分钟前"
                } else {
                    let result = timeinterVal / 3600
                    return "\(Int(result))小时前"
                }
                
                
                
            } else if currentCalendar.isDateInYesterday(self) {
                //是昨天
                dt.dateFormat = "昨天 HH:mm"
            } else {
                //  其它
                dt.dateFormat = "MM-dd HH:mm"
            }
            
        } else {
            //不是今年
            dt.dateFormat = "yyyy-MM-dd HH:mm"
        }
        
        return dt.string(from: self)
    }
    
    //判断是否是今年
    func isThisYear(creatAt: Date) -> Bool {
        let dt = DateFormatter()
        //指定格式化方式
        dt.dateFormat = "yyyy"
        //指定本地化信息
        dt.locale = Locale(identifier: "en_US")
        //获取发微博时间的年份
        let creatAtYear = dt.string(from: creatAt)
        //获取当前年份
        let currentYear = dt.string(from: Date())
        //返回当前时间与发微博时间是否相同
        return creatAtYear == currentYear
    }

    
}
